package com.wzy.portfolio.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.wzy.portfolio.model.StockBaseDto;
import com.wzy.portfolio.model.StockMonitorDto;
import com.wzy.portfolio.model.StockPriceDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@DS("three")
@Mapper
public interface StockMapper {

    /**
     * 获取所有股票基础信息
     * @return
     */
    List<StockBaseDto> getAllStock();

    /**
     * 获取财报信息为空或在reportDate之前的股票
     * @param reportDate
     * @return
     */
    List<StockBaseDto> getNoReportStock(@Param("reportDate") String reportDate);

    /**
     * 跟新股票财报信息
     * @param dto
     */
    void updateStockReportInfo(StockBaseDto dto);

    /**
     * 跟新股票最高最低最新价
     * @param dto
     */
    void updateStockMaxNewPrice(StockBaseDto dto);

    /**
     * 获取所有待监控的股票数据
     * @return
     */
    List<StockMonitorDto> getStockMonitor();

    /**
     * 更新待监控的股票数据信息
     * @param stockPriceDto
     */
    void updateStockMonitor(StockMonitorDto stockPriceDto);

    /**
     * 查询对应股票的最高、最低、最新价
     * @param code
     * @return
     */
    StockBaseDto stockMaxNewPrice(@Param("stockCode") String code);

    /**
     * 入库股票历史数据
     * @param list
     */
    void addStockHistoryPrice(@Param("list")List<StockPriceDto> list);

    /**
     * 新增股票监控数据
     * @param stockPriceDto
     */
    void addStockMonitor(StockMonitorDto stockPriceDto);

    /**
     * 查询股票最近一个交易日的数据
     * @param code
     * @return
     */
    StockPriceDto getHistoryPrice(@Param("stockCode") String code);

}
